LEADTOOLS Medical (Leadtools.Dicom assembly) Send comments on this topic. | Back to Introduction - All Topics | Help Version 17.0.3.29
SetDoubleValueExt(DicomElement,Double[],Int32) Method
See Also 
Leadtools.Dicom Namespace > DicomDataSet Class : SetDoubleValueExt(DicomElement,Double[],Int32) Method



element
An item in the Data Set.
value
Buffer that contains the numeric value(s) to set. If you want to set multiple values in the Value Field, put all nuermic values in value and set count to the appropriate number of values.
count
Value that represents the number of values to set in the Value Field. If you want to set multiple values in the Value Field, put all the numeric values in value and set count to the appropriate number.
element
An item in the Data Set.
value
Buffer that contains the numeric value(s) to set. If you want to set multiple values in the Value Field, put all nuermic values in value and set count to the appropriate number of values.
count
Value that represents the number of values to set in the Value Field. If you want to set multiple values in the Value Field, put all the numeric values in value and set count to the appropriate number.
Sets the double values, or any other numeric value representation of a Data Element. Supported in Silverlight, Windows Phone 7.

Syntax

Visual Basic (Declaration) 
Public Function SetDoubleValueExt( _
   ByVal element As DicomElement, _
   ByVal value() As Double, _
   ByVal count As Integer _
) As Boolean
Visual Basic (Usage)Copy Code
Dim instance As DicomDataSet
Dim element As DicomElement
Dim value() As Double
Dim count As Integer
Dim value As Boolean
 
value = instance.SetDoubleValueExt(element, value, count)
C# 
public bool SetDoubleValueExt( 
   DicomElement element,
   double[] value,
   int count
)
C++/CLI 
public:
bool SetDoubleValueExt( 
   DicomElement^ element,
   array<double>^ value,
   int count
) 

Parameters

element
An item in the Data Set.
value
Buffer that contains the numeric value(s) to set. If you want to set multiple values in the Value Field, put all nuermic values in value and set count to the appropriate number of values.
count
Value that represents the number of values to set in the Value Field. If you want to set multiple values in the Value Field, put all the numeric values in value and set count to the appropriate number.

Return Value

true if the numeric values were set successfully; otherwise, it is false if the numeric values of the Data Element could not be set.

Example

This example will insert several elements into a DICOM dataset, and then set and retrieve the values.

Visual BasicCopy Code
'''
Public Sub DicomDataSet_SetDoubleValueExtExample()
    Dim ds As New DicomDataSet()
    Dim element As DicomElement = Nothing
    Dim doubleValues() As Double = Nothing
    Dim retrieveDoubleValues() As Double = Nothing
    element = ds.InsertElement(Nothing, True, DicomTag.SelectorATValue, DicomVRType.AT, False, 0)
    doubleValues = New Double() {DicomTag.PatientName, DicomTag.PatientID, DicomTag.DigitalSignaturesSequence}
    ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length)
    retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length)
    CompareDoubleArrays(doubleValues, retrieveDoubleValues)

    element = ds.InsertElement(Nothing, True, DicomTag.SelectorISValue, DicomVRType.IS, False, 0)
    doubleValues = New Double() {-2147483648, 2147483647}
    ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length)
    retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length)
    CompareDoubleArrays(doubleValues, retrieveDoubleValues)

    element = ds.InsertElement(Nothing, True, DicomTag.SelectorSLValue, DicomVRType.SL, False, 0)
    doubleValues = New Double() {-2147483648, 2147483647}
    ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length)
    retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length)
    CompareDoubleArrays(doubleValues, retrieveDoubleValues)

    element = ds.InsertElement(Nothing, True, DicomTag.SelectorULValue, DicomVRType.UL, False, 0)
    doubleValues = New Double() {0, 4294967295}
    ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length)
    retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length)
    CompareDoubleArrays(doubleValues, retrieveDoubleValues)

    element = ds.InsertElement(Nothing, True, DicomTag.SelectorUSValue, DicomVRType.US, False, 0)
    doubleValues = New Double() {0, 65535}
    ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length)
    retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length)
    CompareDoubleArrays(doubleValues, retrieveDoubleValues)

    element = ds.InsertElement(Nothing, True, DicomTag.SelectorSSValue, DicomVRType.SS, False, 0)
    doubleValues = New Double() {-32768, 32767}
    ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length)
    retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length)
    CompareDoubleArrays(doubleValues, retrieveDoubleValues)

    element = ds.InsertElement(Nothing, True, DicomTag.SelectorFLValue, DicomVRType.FL, False, 0)
    doubleValues = New Double() {-1.2345F, +1.2345F}
    ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length)
    retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length)
    CompareDoubleArrays(doubleValues, retrieveDoubleValues)

    element = ds.InsertElement(Nothing, True, DicomTag.SelectorFDValue, DicomVRType.FD, False, 0)
    doubleValues = New Double() {-1.2345F, +1.2345F}
    ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length)
    retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length)
    CompareDoubleArrays(doubleValues, retrieveDoubleValues)

    MessageBox.Show("Finished")
End Sub

Public Sub CompareDoubleArrays(ByVal d1() As Double, ByVal d2() As Double)
    If d1 Is Nothing OrElse d2 Is Nothing Then
        Return
    End If

    If d1.Length <> d2.Length Then
        MessageBox.Show("Not Equal", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        Return
    End If

    For i As Integer = 0 To d1.Length - 1
        If d1(i) <> d2(i) Then
            MessageBox.Show("Not Equal", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return
        End If
    Next i
End Sub
C#Copy Code
///
public void DicomDataSet_SetDoubleValueExtExample()
{
   DicomDataSet ds = new DicomDataSet();
   DicomElement element = null;
   double[] doubleValues = null;
   double[] retrieveDoubleValues = null;
   element = ds.InsertElement(null, true, DicomTag.SelectorATValue, DicomVRType.AT, false, 0);
   doubleValues = new double[] { DicomTag.PatientName, DicomTag.PatientID, DicomTag.DigitalSignaturesSequence };
   ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length);
   retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length);
   CompareDoubleArrays(doubleValues, retrieveDoubleValues);

   element = ds.InsertElement(null, true, DicomTag.SelectorISValue, DicomVRType.IS, false, 0);
   doubleValues = new double[] { -2147483648, 2147483647 };
   ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length);
   retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length);
   CompareDoubleArrays(doubleValues, retrieveDoubleValues);

   element = ds.InsertElement(null, true, DicomTag.SelectorSLValue, DicomVRType.SL, false, 0);
   doubleValues = new double[] { -2147483648, 2147483647 };
   ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length);
   retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length);
   CompareDoubleArrays(doubleValues, retrieveDoubleValues);

   element = ds.InsertElement(null, true, DicomTag.SelectorULValue, DicomVRType.UL, false, 0);
   doubleValues = new double[] { 0, 4294967295 };
   ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length);
   retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length);
   CompareDoubleArrays(doubleValues, retrieveDoubleValues);

   element = ds.InsertElement(null, true, DicomTag.SelectorUSValue, DicomVRType.US, false, 0);
   doubleValues = new double[] { 0, 65535 };
   ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length);
   retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length);
   CompareDoubleArrays(doubleValues, retrieveDoubleValues);

   element = ds.InsertElement(null, true, DicomTag.SelectorSSValue, DicomVRType.SS, false, 0);
   doubleValues = new double[] { -32768, 32767 };
   ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length);
   retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length);
   CompareDoubleArrays(doubleValues, retrieveDoubleValues);

   element = ds.InsertElement(null, true, DicomTag.SelectorFLValue, DicomVRType.FL, false, 0);
   doubleValues = new double[] { -1.2345F, +1.2345F };
   ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length);
   retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length);
   CompareDoubleArrays(doubleValues, retrieveDoubleValues);

   element = ds.InsertElement(null, true, DicomTag.SelectorFDValue, DicomVRType.FD, false, 0);
   doubleValues = new double[] { -1.2345F, +1.2345F };
   ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length);
   retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length);
   CompareDoubleArrays(doubleValues, retrieveDoubleValues);

   MessageBox.Show("Finished");
}

public void CompareDoubleArrays(double[] d1, double[] d2)
{
   if (d1 == null || d2 == null)
      return;

   if (d1.Length != d2.Length)
   {
      MessageBox.Show("Not Equal", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
      return;
   }

   for (int i = 0; i < d1.Length; i++)
   {
      if (d1[i] != d2[i])
      {
         MessageBox.Show("Not Equal", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
         return;
      }
   }
}
SilverlightCSharpCopy Code
///
public void DicomDataSet_SetDoubleValueExtExample()
{
   DicomDataSet ds = new DicomDataSet();
   DicomElement element = null;
   double[] doubleValues = null;
   double[] retrieveDoubleValues = null;
   element = ds.InsertElement(null, true, DicomTag.SelectorATValue, DicomVRType.AT, false, 0);
   doubleValues = new double[] { DicomTag.PatientName, DicomTag.PatientID, DicomTag.DigitalSignaturesSequence };
   ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length);
   retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length);
   CompareDoubleArrays(doubleValues, retrieveDoubleValues);

   element = ds.InsertElement(null, true, DicomTag.SelectorISValue, DicomVRType.IS, false, 0);
   doubleValues = new double[] { -2147483648, 2147483647 };
   ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length);
   retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length);
   CompareDoubleArrays(doubleValues, retrieveDoubleValues);

   element = ds.InsertElement(null, true, DicomTag.SelectorSLValue, DicomVRType.SL, false, 0);
   doubleValues = new double[] { -2147483648, 2147483647 };
   ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length);
   retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length);
   CompareDoubleArrays(doubleValues, retrieveDoubleValues);

   element = ds.InsertElement(null, true, DicomTag.SelectorULValue, DicomVRType.UL, false, 0);
   doubleValues = new double[] { 0, 4294967295 };
   ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length);
   retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length);
   CompareDoubleArrays(doubleValues, retrieveDoubleValues);

   element = ds.InsertElement(null, true, DicomTag.SelectorUSValue, DicomVRType.US, false, 0);
   doubleValues = new double[] { 0, 65535 };
   ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length);
   retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length);
   CompareDoubleArrays(doubleValues, retrieveDoubleValues);

   element = ds.InsertElement(null, true, DicomTag.SelectorSSValue, DicomVRType.SS, false, 0);
   doubleValues = new double[] { -32768, 32767 };
   ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length);
   retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length);
   CompareDoubleArrays(doubleValues, retrieveDoubleValues);

   element = ds.InsertElement(null, true, DicomTag.SelectorFLValue, DicomVRType.FL, false, 0);
   doubleValues = new double[] { -1.2345F, +1.2345F };
   ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length);
   retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length);
   CompareDoubleArrays(doubleValues, retrieveDoubleValues);

   element = ds.InsertElement(null, true, DicomTag.SelectorFDValue, DicomVRType.FD, false, 0);
   doubleValues = new double[] { -1.2345F, +1.2345F };
   ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length);
   retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length);
   CompareDoubleArrays(doubleValues, retrieveDoubleValues);

   MessageBox.Show("Finished");
}

public void CompareDoubleArrays(double[] d1, double[] d2)
{
   if (d1 == null || d2 == null)
      return;

   if (d1.Length != d2.Length)
   {
      MessageBox.Show("Not Equal");
      return;
   }

   for (int i = 0; i < d1.Length; i++)
   {
      if (d1[i] != d2[i])
      {
         MessageBox.Show("Not Equal");
         return;
      }
   }
}
SilverlightVBCopy Code
'''
Public Sub DicomDataSet_SetDoubleValueExtExample()
    Dim ds As New DicomDataSet()
    Dim element As DicomElement = Nothing
    Dim doubleValues() As Double = Nothing
    Dim retrieveDoubleValues() As Double = Nothing
    element = ds.InsertElement(Nothing, True, DicomTag.SelectorATValue, DicomVRType.AT, False, 0)
    doubleValues = New Double() {DicomTag.PatientName, DicomTag.PatientID, DicomTag.DigitalSignaturesSequence}
    ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length)
    retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length)
    CompareDoubleArrays(doubleValues, retrieveDoubleValues)

    element = ds.InsertElement(Nothing, True, DicomTag.SelectorISValue, DicomVRType.IS, False, 0)
    doubleValues = New Double() {-2147483648, 2147483647}
    ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length)
    retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length)
    CompareDoubleArrays(doubleValues, retrieveDoubleValues)

    element = ds.InsertElement(Nothing, True, DicomTag.SelectorSLValue, DicomVRType.SL, False, 0)
    doubleValues = New Double() {-2147483648, 2147483647}
    ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length)
    retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length)
    CompareDoubleArrays(doubleValues, retrieveDoubleValues)

    element = ds.InsertElement(Nothing, True, DicomTag.SelectorULValue, DicomVRType.UL, False, 0)
    doubleValues = New Double() {0, 4294967295}
    ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length)
    retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length)
    CompareDoubleArrays(doubleValues, retrieveDoubleValues)

    element = ds.InsertElement(Nothing, True, DicomTag.SelectorUSValue, DicomVRType.US, False, 0)
    doubleValues = New Double() {0, 65535}
    ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length)
    retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length)
    CompareDoubleArrays(doubleValues, retrieveDoubleValues)

    element = ds.InsertElement(Nothing, True, DicomTag.SelectorSSValue, DicomVRType.SS, False, 0)
    doubleValues = New Double() {-32768, 32767}
    ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length)
    retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length)
    CompareDoubleArrays(doubleValues, retrieveDoubleValues)

    element = ds.InsertElement(Nothing, True, DicomTag.SelectorFLValue, DicomVRType.FL, False, 0)
    doubleValues = New Double() {-1.2345F, +1.2345F}
    ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length)
    retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length)
    CompareDoubleArrays(doubleValues, retrieveDoubleValues)

    element = ds.InsertElement(Nothing, True, DicomTag.SelectorFDValue, DicomVRType.FD, False, 0)
    doubleValues = New Double() {-1.2345F, +1.2345F}
    ds.SetDoubleValueExt(element, doubleValues, doubleValues.Length)
    retrieveDoubleValues = ds.GetDoubleValueExt(element, 0, doubleValues.Length)
    CompareDoubleArrays(doubleValues, retrieveDoubleValues)

    MessageBox.Show("Finished")
End Sub

Public Sub CompareDoubleArrays(ByVal d1() As Double, ByVal d2() As Double)
    If d1 Is Nothing OrElse d2 Is Nothing Then
        Return
    End If

    If d1.Length <> d2.Length Then
        MessageBox.Show("Not Equal")
        Return
    End If

    For i As Integer = 0 To d1.Length - 1
        If d1(i) <> d2(i) Then
            MessageBox.Show("Not Equal")
            Return
        End If
    Next i
End Sub

Remarks

If you want to set more than one value in the Value Field of the Data Element, put all the numeric values in the value and set count to the corresponding number of entries. For example, if you wish to set three numeric values in the Value Field of the Data Element, put the three numeric values in value and set count to three.

If more than one value is stored in the Value Field of the Data Element, you must set all values at the same time.

This method differs from Leadtools.Dicom.DicomDataSet.SetDoubleValue in that it can be called with any numeric value representation, including:

If you call this method on an integer VR, any fractional part of the input values will be truncated. If you call this method with an input value that is greater than largest maximum value of the VR, then the input value will be adjusted to be the maximum value of the VR. If you call this method with an input value that is less than the smallest minimum value of the VR, then the input value will be adjusted to be the minimum value of the VR. For more information about Value Representations, refer to Default Value Representation Table.

Requirements

Target Platforms: Silverlight 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7, MAC OS/X (Intel Only)

See Also

Leadtools.Dicom requires a Medical toolkit server license and unlock key. For more information, refer to: Imaging Pro/Document/Medical Features